<?php
	class provincias extends Model {
		private $mTableName = 'GN_Provincias';

		public function __construct() {
			parent::Model();
			$this->load->database();
		}

		function CreateProvincia($nombre, $id_pais) {
			if (empty($nombre) || empty($id_pais) )
				return false;

			$data = array(
				'NombreProvincia'	=> $nombre,
				'IdPais'			=> $id_pais
			);

			$this->db->insert($this->mTableName, $data);
			return $this->LoadProvinciaById($this->db->insert_id());
		}

		function UpdateProvincia($provincia) {
			$nombre = $provincia->GetNombre();
			$id_pais = $provincia->GetIdPais();

			if (empty($nombre) || empty($id_pais) )
				return false;

			$data = array(
				'NombreProvincia'		=> $nombre,
				'IdPais'	=> $id_pais
			);

			$this->db->where('IdProvincia', $provincia->GetIdProvincia());
        	$this->db->update($this->mTableName, $data);
			
			return true;
		}

		function LoadProvinciaById($id_provincia) {
			$qresult = $this->db->get_where($this->mTableName, array('IdProvincia' => $id_provincia));

			if ($qresult->num_rows() == 0)
				return false;

			return new provincia($qresult->row());
		}

		function LoadProvincias($name = false, $pais = false, $start = false, $offset = false, $sortname = false, $sortorder = false) {
			if($name != false && $name != '')
				$this->db->like('NombreProvincia', $name);
			
			if($pais != false && $pais != '')
				$this->db->where('IdPais',$pais);

			if($offset != false)
				$this->db->limit($offset, $start);

			if($sortname != false && $sortorder != false) {
				$this->db->order_by($sortname, $sortorder);
			}

			$result = $this->db->get_where($this->mTableName);

			return $this->GetProvinciasArrayFromQueryResult($result);
		}

		function GetCount() {
			return count($this->LoadProvincias());
		}

		function GetProvinciasArrayFromQueryResult($result) {
			if ($result->num_rows() == 0)
				return false;

			$provincias_arr = array();

			foreach ($result->result() as $record) {
				$provincias_arr[] = new provincia($record);
			}

			return $provincias_arr;
    	}
		
		
		function Delete($id_provincia) {
			$return = $this->db->delete($this->mTableName,array('IdProvincia' => $id_provincia));
			
			return $return;
		}
	}

	class provincia {
		private $mIdProvincia = 0;

		private $mNombre = "";

		private $mIdPais = 0;

		function __construct($object) {
			$this->SetIdProvincia($object->IdProvincia);
			$this->SetNombre($object->NombreProvincia);
			$this->SetIdPais($object->IdPais);
		}

		private function SetIdProvincia($id_provincia) {
			$this->mIdProvincia = $id_provincia;
		}

		function GetIdProvincia() {
			return $this->mIdProvincia;
		}

		function SetIdPais($id_pais) {
			$this->mIdPais = $id_pais;
		}

		function GetIdPais() {
			return $this->mIdPais;
		}

		function SetNombre($nombre) {
			$this->mNombre = $nombre;
		}

		function GetNombre() {
			return $this->mNombre;
		}
	}
?>